package lanQiaoBei.基础算法.双指针;
import java.io.*;

/*
* 给定一个长度为n的整数序列，请你找出不包含重复数字的最长子序列
* n
* 整数序列
* */
public class P2 {
       static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
       static int N=100010;
       static int n;
       static int[]z=new int[N];
       static int[]s=new int[N];
       static int res;
       public static void scan()throws Exception{
              n=Integer.parseInt(br.readLine());
              String[]ss=br.readLine().split(" ");
              for(int i=0;i<n;i++)
                  z[i]=Integer.parseInt(ss[i]);
       }
       public static void m1(){//暴力做法 先枚举每一个终点 然后枚举每一个起点（0~终点）O(n^2)
              for(int i=0,j=0;i<n;i++){
                  j=i;
                  while(j>=0&&s[z[j]]++<=0)j--;
                  res=Math.max(res,i-j);
                  for(int k=i;k>j;k--)
                      s[z[k]]=0;
              }
           System.out.println(res);
       }
       public static void m2()throws Exception{//双指针 O(n)
              for(int i=0,j=0;i<n;i++){
                  s[z[i]]++;
                  while(s[z[i]]>1){
                      s[z[j]]--;
                      j++;
                  }
                  res=Math.max(res,i-j+1);
              }
              System.out.println(res);
       }
       public static void main(String[]args)throws Exception{
              scan();
              m2();
       }
}
